package com.zmj.sy.mom.srv.aps.bean.bo.plan;


import com.zmj.sy.mom.srv.aps.bean.bo.ApsTask;
import com.zmj.sy.mom.srv.aps.bean.bo.ApsWorkOrderTemp;
import com.zmj.sy.mom.srv.aps.bean.entity.order.*;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;

import java.util.List;
import java.util.Map;

@Getter
@Setter
public class PlanOrderCache {

    @ApiModelProperty("排产来源:mbd, erp")
    private String schedulingSource;

    @ApiModelProperty("排产规则")
    private Integer schedulingRule;

    @ApiModelProperty("此次多个订单")
    private List<Order> orderList;

    @ApiModelProperty("订单ID的MAP")
    private Map<Integer, Order> orderIdMap;

    @ApiModelProperty("批次订单")
    private List<ApsOrder> apsOrderList;

    @ApiModelProperty("批次订单")
    private Map<Integer, ApsOrder> apsOrderIdMap;

    @ApiModelProperty("批次订单")
    private Map<Integer, List<ApsOrder>> apsOrderOrderIdMap;

    @ApiModelProperty("拆包的订单")
    private List<ReverseOrder> reverseOrderList;

    @ApiModelProperty("订单ID的拆包分组")
    private Map<Integer, List<ReverseOrder>> reverseOrderOrderIdMap;

    @ApiModelProperty("排产批次")
    private ApsBatch apsBatch;

    @ApiModelProperty("BOM")
    private List<OrderBom> orderBomList;

    @ApiModelProperty("BOM")
    private Map<Integer,OrderBom> orderBomIdMap;

    @ApiModelProperty("BOM")
    private Map<Integer,List<OrderBom>> orderBomOrderIdMap;

    @ApiModelProperty("工序")
    private List<OrderPhase> orderPhaseList;

    @ApiModelProperty("工序")
    private Map<Integer,List<OrderPhase>> orderPhaseOrderIdMap;

    @ApiModelProperty("工序")
    private Map<Integer,OrderPhase> orderPhaseIdMap;

    @ApiModelProperty("工单临时缓存集合")
    private List<ApsWorkOrderTemp> apsWorkOrderTempList;

    @ApiModelProperty("工单临时缓存ID的Map")
    private Map<Integer, ApsWorkOrderTemp> apsWorkOrderTempIdMap;

    @ApiModelProperty("工单临时缓存对象PID的分组MAP")
    private Map<Integer, List<ApsWorkOrderTemp>> apsWorkOrderTempPidMap;

    @ApiModelProperty("倒排详情")
    private List<ReverseDetail> reverseDetailList;

    @ApiModelProperty("倒排明细根据OrderId分组")
    private Map<Integer, List<ReverseDetail>> reverseDetailOrderIdMap;

    @ApiModelProperty("倒排明细根据OrderId, PhaseId分组")
    private Map<Integer, Map<Integer, ReverseDetail>> reverseDetailOrderIdPhaseIdMap;

    @ApiModelProperty("任务列表")
    private List<ApsTask> taskList;

    @ApiModelProperty("任务列表")
    private Map<Integer, Map<Integer, List<ApsTask>>> workOrderIdPhaseSeqMap;

    @ApiModelProperty("任务列表")
    private Map<Integer, List<ApsTask>> workOrderPidMap;


}
